#pragma once
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <stdbool.h>
#include <memory.h>
#include <sys/socket.h> 
#define backlog 128
//数据包类型
enum Type
{
    Heart,
    Message
};
//数据包类型
//心跳包 'H' 数据包 'M'
//数据长度 int 4字节 
//数据类型 char 1字节 
//数据块 char* 4字节

//初始化套接字
int initSocket();
//初始化sockaddr结构体
void initSockaddr(struct sockaddr* addr,unsigned short port,const char* ip);
//设置监听
int setListen(int fd,unsigned short port);
//接收客户端连接
int acceptConnect(int fd,struct sockaddr* addr);
//连接服务器
int connectToHost(int fd,unsigned short port,const char* ip);
//读取指定字节数据
int readn(int fd,char* buffer,int size);
//发送指定字节数据
int writen(int fd,const char* buffer,int size);
//发送数据
bool sendMessage(int fd,const char* buffer,int length,enum Type t);
//接受数据
int recvMessage(int fd,char** buffer,enum Type* t);